import Mock from "mockjs";
const tokens = {
    admin: {
        token: 'admin-token'
    },
    editor: {
        token: 'editor-token'
    }
}

const users = {
    'admin-token': {
        roles: ['admin'],
        introduction: 'I am a super administrator',
        avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
        name: 'Super Admin'
    },
    'editor-token': {
        roles: ['editor'],
        introduction: 'I am an editor',
        avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
        name: 'Normal Editor'
    }
}
const userList = [];
for (let i = 0; i < 10; i++) {
    userList.push({
        id: Mock.Random.integer(0, 999),
        name: Mock.Random.cname()
    })
}

//Mock.mock('@cname')
const user = [
    // user login
    {
        url: 'http://localhost:8080/userInfo',
        type: 'get',
        response: config => {
            // const {
            //     username
            // } = config.body
            // const token = tokens[username]

            // // mock error
            // if (!token) {
            //     return {
            //         code: 60204,
            //         message: 'Account and password are incorrect.'
            //     }
            // }

            // return {
            //     code: 20000,
            //     data: token
            // }
            return {
                code: 0,
                data: userList
            }
        }
    },

    // get user info
    {
        url: 'http://localhost:8080/vue-element-admin/user/info\.*',
        type: 'get',
        response: config => {
            const {
                token
            } = config.query
            const info = users[token]

            // mock error
            if (!info) {
                return {
                    code: 50008,
                    message: 'Login failed, unable to get user details.'
                }
            }

            return {
                code: 20000,
                data: info
            }
        }
    },

    // user logout
    {
        url: 'http://localhost:8080/vue-element-admin/user/logout',
        type: 'post',
        response: _ => {
            return {
                code: 20000,
                data: 'success'
            }
        }
    }
]

export default {
    user
}